from ecelery import easy_start_worker, Celery, auto_register_celery_tasks, patch_celery_console

from tests_easy_celery.dir1.dir2.dir3.dir4.dir5.task_fun2 import sub
from tests_easy_celery.dir1.dir2.dir3.dir4.task_fun1 import add

app = Celery(broker='redis://127.0.0.1:6379/4', )
# patch_celery_console(app)  # 使celery的控制台和彩色更加好，尤其是对于windwos系统,用户可以自己决定优不优化。
auto_register_celery_tasks()  # 无需定义路由，自动的，无论函数写在多少层级的文件夹下,这一步必须放在app实例化和导入消费函数之后运行。。

if __name__ == '__main__':
    """如果是pycahrm可以直接启动，如果是cmd，则现在当前会话窗口临时设置export PYTHONPATH=easy_celery_proj,因为项目中使用的是from test_easy_celery.dir1. 导入
    绝对导入的上一级就是pYTHONPATH文件夹。
    如果使用pip安装easy_celery那就可以在sitedpackes寻找easy_celery了，并且如果项目使用的是 from dir1. 导入，
    那么设置 export PYTHONPATH=easy_celery_proj/tests_easy_celery就行了，如果到现在还不明白PYTHONPATH的作用，建议去百度认真学习，这个概念非常非常重要和好用。
    当然也可以在启动脚本的第一行写硬编码sys.path.insert(0,"项目路径")
    """
    easy_start_worker(app, pool='gevent', function_tasks=[add, sub],concurrency=10)
